<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div class="container">
      <h2 class="page_header">Promise</h2>
      <button class="btn btn-primary" id="btn">点击抽奖</button>
    </div>
    <script>
      //生成随机数
      function rand(m, n) {
        return Math.ceil(Math.random() * (n - m + 1)) + m - 1;
      }
      /*
			点击按钮，1s后显示是否中奖
			 			若中奖弹出 恭喜中奖
						若未中奖弹出 继续努力
			*/
      // 获取元素对象
      const btn = document.querySelector('#btn');
      // 绑定点击事件
      btn.addEventListener('click', function () {
        //定时器
        // setTimeout(() => {
        //   let n = rand(1, 100);
        //   console.log(n);
        //   if (n < 30) {
        //     alert('恭喜中奖');
        //   } else {
        //     alert('再接再厉');
        //   }
        // }, 1000);

        //Promsise 形式实现
        // resolve 解决 函数类型的数据 成功
        // reject 拒绝 函数类型的数据 	失败
        const p = new Promise((resolve, reject) => {
          setTimeout(() => {
            let n = rand(1, 100);
            console.log(n);
            if (n < 30) {
              resolve(n); // 将 Promise 对象的状态设置为成功
            } else {
              reject(n); //将 Promise 对象的状态设置为失败
            }
          }, 1000);
        });
        console.log(p);
        //调用then方法
        p.then(
          (value) => {
            alert('恭喜中奖' + value);
          },
          (reason) => {
            alert('再接再厉' + reason);
          }
        );
      });
    </script>
  </body>
</html>
